package mydb.backend.tm;

import mydb.backend.tm.impl.TransactionManagerImpl;

import java.io.File;

/**
 * @author Fang Ruichuan
 * @date 2023-02-24 12:44
 */

public interface TransactionManager {
    // 开启一个新事务
    long begin();

    // 提交一个事务
    void commit(long xid);

    // 取消一个事务
    void abort(long xid);

    // 查询一个事务的状态是否是正在进行的状态
    boolean isActive(long xid);

    // 查询一个事务的状态是否是正在进行的状态
    boolean isCommitted(long xid);

    // 查询一个事务的状态是否是已取消
    boolean isAborted(long xid);

    // 关闭TM
    void close();

    public static TransactionManagerImpl create(String path) {
//        File f = new File(path + TransactionManagerImpl.XID_FIELD_SIZE);
//        try {
//            if (!f.createNewFile()) {
//            }
//        } catch (Exception e) {
//
//        }

        return null;
    }



}
